package 序列化与反序列化;

import java.io.Serializable;

/**
 * 涉及到的流对象
 *     1.序列化的是ObjectOutputStream
 *
 *     2.反序列化的是ObjectInputStream
 *     Serializable接口是用来启用序列化功能的
 */
public class Test implements Serializable {
    //需要给每个进行序列化的文件分配唯一的UID值
    private static final long serialVersionUID = 0;
    //定义学生的相关属性+private封装
    private String name;//名字
    private int age;//年龄
    private  String addr;//地址
    private char gender;//性别
    /**
     * 自动创建构造方法:
     * 2.创建无惨构造--必须手动提供无惨构造,否则会被含参构造覆盖
     */
    public Test(){
        System.out.println("无参构造");
    }
    //3.创建全参构造
    public Test(String name, int age, String addr, char gender) {
        this.name = name;
        this.age = age;
        this.addr = addr;
        this.gender = gender;
        System.out.println("我是Test的全参构造");
    }
    //4.属性封装后,需要本类提供公共的属性访问与设置方式get()&set()
    /**
     * 自动创建get()&set()方法
     */
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Test{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", addr='" + addr + '\'' +
                ", gender=" + gender +
                '}';
    }
}
